#ifndef CHOOSEFRIENDDIALOG_H
#define CHOOSEFRIENDDIALOG_H

#include <QDialog>
#include <QWidget>
#include <QHBoxLayout>
#include <QScrollArea>
#include <QScrollBar>
#include <QCheckBox>
#include <QLabel>
#include <QPushButton>
#include <QPainter>

#include "model/datacenter.h"
#include "toast.h"
#include "debug.h"

////////////////////////////////////////////////////////////
/// 选择好友窗口
////////////////////////////////////////////////////////////

class ChooseFriendDialog;

class ChooseFriendItem : public QWidget{
    Q_OBJECT
public:
    ChooseFriendItem(ChooseFriendDialog* owner, const QString& userId, const QIcon &avatar, const QString &name, bool checked);

    void paintEvent(QPaintEvent* event) override;
    void enterEvent(QEnterEvent* event) override;
    void leaveEvent(QEvent* event) override;

    const QString& getUserId() const {
        return userId;
    }
    QCheckBox* getCheckBox() const {
        return checkBox;
    }
private:
    bool isHover = false;
    QCheckBox* checkBox;
    QPushButton* avatarBtn;
    QLabel* nameLabel;
    ChooseFriendDialog* owner;  //记录了哪个 QWidget 只有了这个Item, 此处的 QWidget

    QString userId;             //记录了当前 Item 对应的 userId 是啥.
};


////////////////////////////////////////////////////////////
/// 选择好友窗口
////////////////////////////////////////////////////////////

class ChooseFriendDialog : public QDialog
{
    Q_OBJECT
public:
    ChooseFriendDialog(QWidget* parent, const QString& userId);

    void initLeft(QHBoxLayout* layout);
    void initRight(QHBoxLayout* layout);
    void clickOkBtn();
    QList<QString> generateMemberList();

    void addFriend(const QString& userId, const QIcon& avatar, const QString& name, bool checked);
    void addSelectedFriend(const QString& userId, const QIcon& avatar, const QString& name);
    void deleteSelectedFriend(const QString& userId);

    void initData();
private:
    //保存左侧全部好友列表的 QWidget
    QWidget* totalContainer;
    //保存右侧全部好友列表的 QWidget
    QWidget* selectedContainer;

    // 当前选择窗口是点击那个用户来弹出的.
    QString userId;
};

#endif // CHOOSEFRIENDDIALOG_H
